package com.hanamaki.study.day03;

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Ignore;
import org.testng.annotations.Test;

import java.util.ArrayList;
import java.util.List;

public class SeleniumAlert03 {

    //注册驱动
    WebDriver driver;

    @BeforeMethod
    public void setUp() {

        //注册本地火狐打开的位置
        System.setProperty("webdriver.gecko.driver", "C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");
        //初始化
        driver = new FirefoxDriver();


    }

//    @Ignore
    @Test(enabled = false)
    public void alert() throws InterruptedException {

        driver.get("file:///C:/Users/Administrator/Desktop/testhtml/exam/testSelenium.html");

        WebElement element = driver.findElement(By.xpath("//input[@value='Alert']"));
        element.click();
        /* 如果 想要操作  弹出对话框中的 按钮    必须 切换 光标所在的 位置*/
        Alert alert = driver.switchTo().alert();
        /* 观察得到的  alert  对象中 有哪些需要使用的 方法 */
        /* 强制等待 */
        Thread.sleep(3000);
        /* 获得 弹窗的标题名 */
        System.out.println(alert.getText());
        /* 点击  弹窗中的  确定按钮 */
//        alert.accept();
        /* 在一个普通的 alert 弹窗中  即使没有 取消操作 也是可以  操作 取消的 */
        alert.dismiss();
    }

    @Test
    public void confirmation() throws InterruptedException {

        driver.get("file:///C:/Users/Administrator/Desktop/testhtml/exam/testSelenium.html");
        WebElement element = driver.findElement(By.xpath("//input[2]"));
        element.click();
        /* 如果 想要操作  弹出对话框中的 按钮    必须 切换 光标所在的 位置*/
        Alert alert = driver.switchTo().alert();
        /* 观察得到的  alert  对象中 有哪些需要使用的 方法 */
        /* 强制等待 */
        Thread.sleep(3000);
        /* 获得 弹窗的标题名 */
        System.out.println(alert.getText());
        /* 点击  弹窗中的  确定按钮 */
//        alert.accept();
        /* 在一个普通的 alert 弹窗中  即使没有 取消操作 也是可以  操作 取消的 */
        alert.dismiss();
    }


    @Test
    public void prompt() throws InterruptedException {

        driver.get("file:///C:/Users/Administrator/Desktop/testhtml/exam/testSelenium.html");
        WebElement element = driver.findElement(By.xpath("//input[3]"));
        element.click();
        /* 如果 想要操作  弹出对话框中的 按钮    必须 切换 光标所在的 位置*/
        Alert alert = driver.switchTo().alert();
        /* 观察得到的  alert  对象中 有哪些需要使用的 方法 */
        /* 强制等待 */
        Thread.sleep(3000);
        /* 获得 弹窗的标题名 */
        System.out.println(alert.getText());
        /* 可以向 prompt 元素中 键入 文本值  */
        alert.sendKeys("hanamaki");
        Thread.sleep(3000);

        /* 点击  弹窗中的  确定按钮 */
//        alert.accept();
        /* 在一个普通的 alert 弹窗中  即使没有 取消操作 也是可以  操作 取消的 */
        alert.dismiss();
    }



    @AfterMethod
    public void close() {
//        driver.close();
    }
}
